﻿using System;
using Onshi.POS.Comun.Vistas;
using Onshi.POS.Modelo.Entidades;
using Onshi.POS.Modelo.Seguridad;
using Onshi.POS.Repositorios;

namespace Onshi.POS.Comun
{
    public class AccesoPresentador
    {
        #region Constructor
        public AccesoPresentador(IAcceso vista)
        {
            this.vista = vista;
        }
        #endregion

        #region Atributos
        private IAcceso vista = null;
        #endregion

        #region Metodos
        public Boolean Autentificar()
        {
            RepositorioUsuario repositorioUsuario = new RepositorioUsuario();
            Usuario usuario = repositorioUsuario.DevolverPorNombre(vista.Nombre);
            if (usuario == null)
                throw new Exception("El nombre de usuario no existe");

            #region Encriptar
            Crypto crypto = new Crypto(Crypto.CryptoProvider.DES);
            crypto.Key = "clave";
            crypto.IV = "clave";
            #endregion

            if (usuario.Clave != crypto.CifrarCadena(vista.Clave))
                throw new Exception("La contraseña proporcionada no es valida");
            
            return true;
        }
        #endregion
    }
}
